Layout tools use databases for storing objects defining portions of layout for an integrated circuit, such as portions of layout for a plurality of nets in the integrated circuit. For example, one database which can be used by design tools, such as Cadence's Virtuoso tool, is OpenAccess. The objects stored in an OpenAccess database can comprise a path object, and a path segment object, and other types of objects.
A path object is defined by a list of points defining multiple consecutive but not necessarily co-linear portions of interconnect, all formed on a single layer and of the same width. FIG. 1 illustrates a portion of layout for an example path object 101 composed of a plurality of portions 102, 103 and 104. The portions are created between points 105, 106, 107, and 108 that would be stored in a data structure representing a computer readable representation of path object 101. Path object 101 can be created by a designer who may specify each point and also specify a width for the path that is to connect each of those points.
FIG. 2 illustrates physical layout for path object 101 having width W. A user, when editing such a path object with a layout editor and selecting any point within a display of layout for path object 101 would cause selection of path object 101 in its entirety.
As evident from FIGS. 1 and 2, a path object is a single width, single layer portion of interconnect that may contain turns, and so would be defined by a beginning, an end, and zero or more intermediate points defining turns for that path object.
By contrast, a path segment object is defined as a single width, single layer linear strip of interconnect having a beginning and an end (i.e., there are no turns in a path segment object). Each such path segment is a separate layout database object that itself does not contain information about a higher-level construct of which it may be a part. In other words, even though a series of these path segments may be used by a tool to create an electrical connection between two circuit nodes, each path segment database object has no information about other path segments used in forming that connection. So, in a layout design tool, without any assistance to a designer, selecting layout corresponding to a given path segment generally would cause selection only of that single path segment object. Path segments objects are often preferred by automatic routing tools.
This concept of using path segments is further illustrated with respect to FIGS. 3a through 3d. In particular, the path object 101 of FIGS. 1 and 2 is shown repeated as FIG. 3a, with arrows identifying portions of path object 101 that may be implemented as path segment objects 305, 310, and 315 (i.e., 3 separate database objects) by an automatic layout tool for connecting points 108 and 105 (FIG. 1). Each path segment object is specified by a start point and an end point. For example, object 305 is defined by points 108 and 301, while object 310 is defined by points 311 and 106. The points 301 and 311 would generally be defined using the same physical (x,y) coordinate (i.e., the same physical point in two-dimensional space), because the end point of one path segment object also is the start for the next path segment object. However, to emphasize that segment 305 and segment 310 are separate database objects, these points are separately numbered, being distinct stored values for each database object.
One implication of having logically separate path segments composing a single path of layout is illustrated in FIG. 5. Here, a cursor position is illustrated by number 510. If a user selected the point on a screen illustrated by a cursor position 510, then a layout tool would select path segment object 315, even though the user may preferably have wanted to select the entirety of the physical interconnect (i.e., the layout defined by path segment objects 305, 310, and 315) connecting points 108 and 105. Instead, a remainder of such path segment objects (310 and 305) illustrated in outline and collectively numbered 505 would remain unselected.
One accommodation in this regard is illustrated in FIG. 4. Here, cursor click 410 is illustrated also as being in a position to select path segment object 315. However, a mode can be provided that will allow selection of all electrically connected database objects (i.e., a net). For a simple configuration of interconnect elements, such as that illustrated in FIG. 4, this may be the desired behavior of the tools. However, more complicated situations exist where a designer may not desire to have selected all electrically connected path segment objects simply because the designer had clicked on one such path segment object.